It is now common for operating systems to have a shell that provides a graphical user interface (GUI). The shell is a piece of software (either a separate program or component part of the operating system) that provides direct communication between the user and the operating system. The graphical user interface typically provides a graphical icon-oriented and/or menu driven environment for the user to interact with the operating system.
The graphical user interface of many operating system shells is based on a desktop metaphor that creates a graphical environment simulating work at a desk. These graphical user interfaces typically employ a windowing environment with the desktop.
The windowing environment presents the user with specially delineated areas of the screen called windows, each of which is dedicated to a particular application program, file or document. Each window can act independently, as if it were a virtual display device under control of its particular application program. Windows can typically be resized, moved around the display, and stacked so as to overlay another. In some windowing environments, windows can be minimized to an icon or increased to a full-screen display.
Windows may be rendered beside each other or may have a top to bottom order in which they are displayed, with top windows at a particular location on the screen overlaying any other window at that same location according to a z-order (an order of the windows along a conceptual z-axis normal to the desktop or display screen). The top-most window has the “focus” and accepts the user's input. The user can switch other windows to the top (and thereby change the z-order) by clicking on the window with a mouse or other pointer device, or by inputting certain key combinations. This allows the user to work with multiple application programs, files and documents in a manner similar to physically working with multiple paper documents and items that can be arbitrarily stacked or arranged on an actual desk.
In conventional graphical user interfaces all major graphical user interface objects (e.g., windows, icons, toolbar, etc.) are typically rendered as fixed, static graphical objects. Changes in the user interface that arise when a system notification is provided to a user are typically rendered as a fixed, static change to the user interface. The intent is that the notification attract the user's attention from another ongoing task or operation. For example, a conventional static user notification could include a notification window that pops-up on a user display screen (e.g., to notify a user of new email), or a change in color of a display object (e.g., the name of a friend in a list of messaging chat buddies indicating the a user has signed on or off), etc.
As part of a psychological phenomenon known as the “just noticeable difference”, or JND, human visual perception is highly sensitive to change. JND is the amount of change in a perceptual signal (such as a change in the pitch or volume of a sound or the color or intensity of light) that is conspicuous to a person's consciousness. An aspect of the optical characteristics of conventional graphical user interfaces is that the display changes that are used to provide user notifications are highly distracting to users. The reason is that the display changes that occur with notifications occur in the context of static displays with virtually no display variation. Such dramatic user notifications may be warranted for important system notifications. However, dramatic user notifications of ordinary system events can be highly distracting and disruptive for users who have multiple applications operating concurrently.
Accordingly, the present invention includes a software application or an operating system shell that provides on a display screen a graphical user interface through which a user interacts with computer software (e.g., the operating system). In one implementation, an operating system shell provides a background noisy display rendered on the display screen in accordance with a background physical lighting model, and an ambient notification rendered over at least a portion of the background noisy display to provide a user notification. The ambient notification is rendered in accordance with an ambient notification physical lighting model that is different from the background physical lighting model.
In one implementation the background physical lighting model and the ambient notification physical lighting each are based upon a noisy user interface object data structure that includes desktop element models, desktop element texture maps, and a lighting model. The desktop element models provide three-dimensional representations of plural noisy graphical user interface desktop objects (e.g., windows, icons, toolbar, etc.).
One or more desktop element texture maps are associated with each desktop element model, the desktop element texture maps including at least image color information for each desktop element model. The lighting model has one or more light source representations that each include a light color, light intensity, and light direction, for example. A three-dimensional rendering engine provides three-dimensional rendering on a display screen of noisy graphical user interface desktop objects based upon the desktop element models, the desktop element texture maps, and the lighting model.
The background noisy display may be implemented by rendering user interface objects and lighting effects between them with the three-dimensional rendering engine based at least upon the desktop element models and the lighting model. Three-dimensional or physical lighting interactions between the user interface objects can provide a background noisy display to which users can acclimate and on which ambient notifications can be applied. Ambient notifications can be of perceptual amplitudes that are great than or less than the “just noticeable difference” (JND) change in a perceptual signal.
The ambient notification can provide notification information to a user without having to bring to the front of other active user interface objects (e.g., windows) a notification or a window with notification, or otherwise alter the screen layout in a distracting fashion. The ambient notification may be implemented as optical or visual effects, such as inter-object lighting, shadows, or surface effects, for example, to provide notification information. As a result, the user can readily perceive ambient notifications without the disruptions of conventional static system notifications.
Additional objects and advantages of the present invention will be apparent from the detailed description of the preferred embodiment thereof, which proceeds with reference to the accompanying drawings.